맨위로가기

텍스트 사용자 인터페이스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

텍스트 사용자 인터페이스(TUI)는 텍스트 기반으로 정보를 표시하고 사용자 입력을 받는 인터페이스를 의미한다. ANSI 표준 이스케이프 시퀀스를 사용하여 TUI를 생성할 수 있으며, 실제 텍스트 모드 디스플레이, 텍스트 모드 에뮬레이터, 원격 텍스트 터미널 등 다양한 유형이 존재한다. 도스(DOS) 및 윈도우(Windows) 환경에서는 BIOS와 ANSI.SYS, 윈도우 콘솔 등을 통해 TUI를 지원하며, 유닉스 계열 시스템에서는 curses, ncurses, S-Lang 등의 라이브러리를 사용하여 TUI를 구성한다. 오베론(Oberon) 시스템은 독특한 TUI 방식을 사용하며, 임베디드 시스템에서도 TUI가 활용된다. TUI 프로그래밍에는 curses, ncurses, CDK, Newt, S-Lang, 터보 비전 등 다양한 라이브러리가 사용된다.

더 읽어볼만한 페이지

  • 사용자 인터페이스 - 로그인
    로그인은 특정 페이지, 웹사이트 또는 응용 프로그램에 접근하기 위해 사용자 이름과 암호를 입력하여 시스템에 접근하는 절차이며, 1960년대 시분할 시스템과 1970년대 BBS에서 사용되기 시작했다.
  • 사용자 인터페이스 - 키넥트
    키넥트는 마이크로소프트에서 개발한 동작 인식 장치로, 적외선 프로젝터와 센서를 사용하여 사용자의 움직임과 음성을 인식하며, Xbox용으로 출시되어 큰 인기를 얻었지만 개인정보 보호 문제 등으로 판매가 부진하여 생산이 중단되었고, 다양한 분야에서 활용되며 기술적 가치를 인정받아 클라우드 기반 Azure Kinect로 이어졌으나 단종되었다.
텍스트 사용자 인터페이스

2. ANSI 호환 터미널의 TUI

미국 국립 표준 협회(ANSI) 표준 ANSI X3.64는 터미널에서 TUI를 구현하기 위한 이스케이프 시퀀스(ANSI 이스케이프 코드)의 표준을 정의한다. 이 이스케이프 시퀀스는 텍스트 커서의 임의 이동과 색상 변경을 가능하게 한다. 그러나 모든 터미널이 이 표준을 따르는 것은 아니며, 호환되지 않지만 기능적으로 동일한 시퀀스도 많이 존재한다. 여기서 "터미널"은 독립된 하드웨어인 "디스플레이 터미널"을 의미하며, 이는 문자 코드를 사람이 읽을 수 있는 문자로 변환하는 기능을 한다. 후에 소프트웨어로 구현되면서 터미널 에뮬레이터라고 불리게 되었다.

3. 텍스트 터미널의 유형

텍스트 화면(및 화면과의 통신)은 텍스트 응용 프로그램의 관점에서 접근성이 감소하는 순서로 다음 세 가지 유형 중 하나에 속할 수 있다.

# 실제 텍스트 모드 디스플레이. 이는 비디오 어댑터 또는 중앙 처리 장치 자체에 의해 제어된다. 이것은 다양한 유형의 개인용 컴퓨터모바일 장치에서 로컬로 실행되는 응용 프로그램의 일반적인 조건이다. 운영 체제에 의해 방해받지 않으면, 스마트 프로그램은 하드웨어 텍스트 모드의 모든 기능을 활용할 수 있다.

# 텍스트 모드 에뮬레이터. 예로는 X Window System용 xterm과 Microsoft Windows용 win32 콘솔(창 모드)이 있다. 이것은 일반적으로 실제 텍스트 모드 디스플레이를 예상하는 프로그램을 지원하지만 상당히 느리게 실행될 수 있다. 자체 글꼴 업로드와 같은 고급 텍스트 모드의 특정 기능은 거의 확실히 사용할 수 없게 된다.

# 원격 텍스트 터미널. 통신 기능은 일반적으로 직렬 회선 또는 에뮬레이션으로 축소되며, 텔넷 및 Secure Shell과 같은 경우에 대역 외 채널로 몇 가지 ioctl()이 있을 수 있다. 이것은 소프트웨어 제한으로 인해 원격 디스플레이 장치의 기능을 사용할 수 없게 되므로 최악의 경우이다.

4. 도스(DOS) 및 윈도우(Windows) 환경의 TUI

PC 호환기종에서는 BIOS와 MS-DOS가 화면에 문자를 출력하는 수단을 제공했으며, ANSI.SYS가 안시 이스케이프 코드를 처리했다.[1] 프로그래머들은 데이터를 직접 화면 버퍼에 쓰는 것이 더 빠르고 효율적이라는 것을 발견하고, 이 방식을 활용하여 많은 DOS TUI 프로그램을 개발했다. (VGA 호환 텍스트 모드 참조)

FreeDOS Edit 사용자 인터페이스


초기 윈도우에는 MS-DOS 소프트웨어를 표시하기 위한 콘솔이 포함되었고, 이후 버전에서는 윈도우 콘솔이 추가되었다. 윈도우 터미널윈도우 10 이상을 위해 개발된 윈도우 콘솔의 대체품이다.[2] 윈도우용 리눅스 하위 시스템은 윈도우 콘솔, 윈도우 터미널 등에서 리눅스 텍스트 기반 앱 실행을 지원한다.

TUI는 파란색 배경에 흰색 또는 노란색 문자를 주로 사용했지만, 사용자 지정 색상도 지원했다. IBM 코드 페이지 437의 상자 그림 문자를 사용하기도 했다. 그래픽 사용자 인터페이스(GUI)의 영향을 받아, 풀다운 메뉴, 겹치는 창(컴퓨팅), 대화 상자, GUI 위젯, 컴퓨터 마우스 입력 등이 추가되었다.

Impulse Tracker의 마우스 커서.


대표적인 TUI 프로그램은 다음과 같다:

5. 유닉스 계열 시스템의 TUI

유닉스 계열 운영 체제에서 TUI는 주로 터미널 제어 라이브러리인 curses 또는 ncurses (대부분 호환되는 라이브러리)를 사용하거나, 대안으로 S-Lang 라이브러리를 사용하여 구성된다. Berkeley Unix와 함께 ''curses'' 라이브러리가 등장하면서 TUI를 작성할 수 있는 이식 가능하고 안정적인 API가 생성되었다.

vi, pine, mutt와 같은 텍스트 편집기 및 전자 메일 클라이언트, SMIT, SAM과 같은 시스템 관리 도구, FreeBSD의 Sysinstall, lynx와 같은 웹 브라우저 등 다양한 TUI 프로그램이 개발되었다. w3m과 같은 일부 응용 프로그램은 덜 유능한 termcap 라이브러리를 사용하기도 한다.

리눅스의 인기로 인해 많은 이전 DOS 사용자가 유닉스 계열 플랫폼으로 전환했고, 이는 많은 TUI에 DOS의 영향을 미쳤다. 예를 들어, minicom은 Telix를 모델로 한다. Twin 데스크톱과 같은 TUI 프로그램도 이식되었다.

대부분의 유닉스 계열 운영 체제는 가상 콘솔을 지원한다. GNU ScreenTmux는 단일 TUI 내에서 여러 세션을 관리하는 기능을 제공한다. macOS 텍스트 편집기인 BBEdit는 ''셸 워크시트'' 기능을 포함한다. Emacs는 버퍼 중 하나 내에서 셸을 실행하여 유사한 기능을 제공한다. Vim 및 Neovim 텍스트 편집기에는 터미널 창이 있다.

6. 오베론(Oberon) 시스템의 TUI

오베론 운영 체제는 대부분의 다른 텍스트 기반 사용자 인터페이스와 달리 텍스트 모드 콘솔이나 터미널을 사용하지 않는다. 대신 텍스트가 마우스 클릭의 주요 대상이 되는 대형 비트맵 디스플레이가 필요하다. 링크와 유사하게, 명령은 `Module.Procedure parameters ~` 형식을 가지며 마우스 가운데 클릭으로 활성화된다.[4] 화면 어디에든 표시된 텍스트를 편집할 수 있으며, 필요한 명령 구문으로 서식이 지정된 경우 가운데 클릭으로 실행할 수 있다. 적절하게 형식이 지정된 명령이 포함된 모든 텍스트 파일은 소위 '''도구 텍스트'''로 사용되어 사용자 구성 가능한 메뉴 역할을 한다. 이전 명령의 출력조차도 편집하여 새 명령으로 사용할 수 있다. 이러한 방식은 기존의 대화 지향적인 콘솔 메뉴나 명령줄 인터페이스와는 근본적으로 다르다.

이미지와 여러 텍스트 뷰어를 보여주는 오베론 시스템의 데스크톱 스크린샷


그래픽 위젯이 아닌 일반 텍스트만 사용하지만, 타일링 윈도우 매니저가 있는 GUI와 유사한 기능을 제공하므로 텍스트 사용자 인터페이스(TUI)라고 한다.[4]

오베론의 UI벨 연구소의 Plan 9 운영 체제를 위한 Acme 텍스트 편집기 및 이메일 클라이언트의 설계에 영향을 미쳤다.

7. 임베디드 시스템에서의 TUI

LCD 화면에 메뉴를 표시하는 임베디드 시스템


현대적인 임베디드 시스템은 개인용 컴퓨터처럼 모니터에 TUI를 표시할 수 있다. 이 기능은 일반적으로 특수 집적 회로, 모듈 또는 FPGA를 사용하여 구현된다.

비디오 회로 또는 모듈은 일반적으로 UART를 통해 VT100 호환 명령 집합을 사용하여 제어된다.[1] FPGA 설계는 일반적으로 직접 비디오 메모리 접근을 허용한다.[2]

8. 기타 TUI 활용 사례

코모도어 64 8비트 컴퓨터의 전체 화면 편집기는 당시 시장에서 앞선 기술을 선보였다. 사용자는 전체 화면 영역에서 커서를 이동하여 BASIC 프로그램 라인을 입력하고 편집할 수 있었으며, 직접 모드 명령어도 사용할 수 있었다. 모든 코모도어 8비트 컴퓨터는 TUI를 만들기에 적합한 문자 글리프를 포함하는 PETSCII 문자 세트를 사용했다.[1]

Apple II 모델에는 TUI를 만드는 데 사용되는 일련의 그래픽 글리프인 마우스텍스트가 포함되었다.[3]

애플의 매킨토시 프로그래머 워크샵 프로그래밍 환경에는 TUI 셸인 코만도가 포함되었다. 이는 BBEdit의 셸 워크시트에 영감을 주었다.[2]

1982년의 코르버스 컨셉트 컴퓨터는 전체 페이지 회전 디스플레이에서 기능 키 기반 텍스트 인터페이스를 사용했다.[4]

9. TUI 프로그래밍 라이브러리 예시


  • curses
  • ncurses
  • CDK
  • Newt (위젯 기반 툴킷)
  • S-Lang
  • 터보 비전
  • 초기 버전의 비주얼 베이직

참조

[1] 웹사이트 cmd prompt full screen in Windows 7 http://social.techne[...] 2013-06-15
[2] 웹사이트 Microsoft unveils Windows Terminal, a new command line app for Windows https://www.theverge[...] 2019-05-06
[3] 웹사이트 OpenVMS RTL Screen Management (SMG$) Manual http://h30266.www3.h[...] 2001
[4] 간행물 The Oberon System http://e-collection.[...] 1988
[5] 웹인용 Programming with Curses https://books.google[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com